<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
    <meta charset="utf-8">
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>嘻嘻嘻哈哈哈博客</title>
    <link rel="stylesheet" type="text/css" href="../static/css/bootstrap.min.css">
    <link rel="stylesheet" type="text/css" href="../static/css/blog.css">
    <script src="../static/js/jquery.min.js"></script>
</head>
<body class="user-select">
<header class="header">
    <nav class="navbar navbar-default" id="navbar1"
         style="opacity: 0.9;z-index: 9999;">
        <div class="container" id="nav">
            <div class="navbar-header logo-site">
                <button type="button" class="navbar-toggle collapsed" data-toggle="collapse"
                        data-target="#header-navbar" aria-expanded="false"><span class="sr-only"></span> <span
                        class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span></button>
                <h1 class="logo hvr-bounce-in">
                    <a href="/" title="嘻嘻嘻哈哈哈博客">嘻嘻嘻哈哈哈博客</a>
                </h1>
            </div>
        </div>
    </nav>
</header>
<section class="container" id="detail">
    <div class="content-wrap">
        <div class="content">
            <header class="article-header">
                <h1 class="article-title"><a href="javascript:;">spring boot ehcache整合</a></h1>
                <div class="article-meta">
                    <span class="item article-meta-time">
                        <time class="time" data-toggle="tooltip" data-placement="bottom"><i class="glyphicon glyphicon-time"></i> <span>Wed Sep 23 11:56:52 CST 2020</span></time>
                    </span>
                </div>
            </header>
            <article class="article-content" style="height: auto !important;"><h3 id="pomxml配置-引入依赖包" style="font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, SimHei, Arial, SimSun; color: rgb(63, 63, 63); margin: 0.8em 0px; font-size: 1.7em; padding: 0px;">pom.xml配置 引入依赖包</h3><pre class="prettyprint" style="font-family: &quot;Source Code Pro&quot;, monospace; font-size: 14px; white-space: nowrap; padding: 5px 5px 5px 60px; margin-bottom: 1.1em; line-height: 1.45; background-color: rgba(128, 128, 128, 0.05); border-color: rgba(128, 128, 128, 0.075); border-radius: 0px; position: relative; overflow-y: hidden;"><code class="hljs xml has-numbering" style="font-family: &quot;Source Code Pro&quot;, monospace; white-space: pre; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; display: block; word-wrap: normal;"><span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">dependency</span>&gt;</span>
    <span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">groupId</span>&gt;</span>org.springframework.boot<span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;/<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">groupId</span>&gt;</span>
    <span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">artifactId</span>&gt;</span>spring-boot-starter-cache<span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;/<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">artifactId</span>&gt;</span>
<span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;/<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">dependency</span>&gt;</span>
<span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">dependency</span>&gt;</span>
    <span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">groupId</span>&gt;</span>net.sf.ehcache<span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;/<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">groupId</span>&gt;</span>
    <span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">artifactId</span>&gt;</span>ehcache<span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;/<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">artifactId</span>&gt;</span>
<span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;/<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">dependency</span>&gt;</span></code><ul class="pre-numbering" style="margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding: 6px 0px 40px; list-style: none; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; border-right: 1px solid rgb(221, 221, 221); text-align: right;"><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">1</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">2</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">3</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">4</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">5</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">6</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">7</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">8</li></ul></pre><h3 id="编写配置类设置缓存机制" style="font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, SimHei, Arial, SimSun; color: rgb(63, 63, 63); margin: 0.8em 0px; font-size: 1.7em; padding: 0px;">编写配置类,设置缓存机制</h3><pre class="prettyprint" style="font-family: &quot;Source Code Pro&quot;, monospace; font-size: 14px; white-space: nowrap; padding: 5px 5px 5px 60px; margin-bottom: 1.1em; line-height: 1.45; background-color: rgba(128, 128, 128, 0.05); border-color: rgba(128, 128, 128, 0.075); border-radius: 0px; position: relative; overflow-y: hidden;"><code class="hljs java has-numbering" style="font-family: &quot;Source Code Pro&quot;, monospace; white-space: pre; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; display: block; word-wrap: normal;"><span class="hljs-annotation" style="margin: 0px; padding: 0px; color: rgb(155, 133, 157);">@Configuration</span>
<span class="hljs-annotation" style="margin: 0px; padding: 0px; color: rgb(155, 133, 157);">@EnableCaching</span>
<span class="hljs-keyword" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">public</span> <span class="hljs-class" style="margin: 0px; padding: 0px;"><span class="hljs-keyword" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">class</span> <span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">CacheConfiguration</span> {</span>

    <span class="hljs-annotation" style="margin: 0px; padding: 0px; color: rgb(155, 133, 157);">@Bean</span>
    <span class="hljs-keyword" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">public</span> EhCacheCacheManager <span class="hljs-title" style="margin: 0px; padding: 0px;">ehCacheCacheManager</span>(EhCacheManagerFactoryBean bean) {
        <span class="hljs-keyword" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">return</span> <span class="hljs-keyword" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">new</span> EhCacheCacheManager(bean.getObject());
    }

    <span class="hljs-annotation" style="margin: 0px; padding: 0px; color: rgb(155, 133, 157);">@Bean</span>
    <span class="hljs-keyword" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">public</span> EhCacheManagerFactoryBean <span class="hljs-title" style="margin: 0px; padding: 0px;">ehCacheManagerFactoryBean</span>() {
        EhCacheManagerFactoryBean cacheManagerFactoryBean = <span class="hljs-keyword" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">new</span> EhCacheManagerFactoryBean();
        cacheManagerFactoryBean.setConfigLocation(<span class="hljs-keyword" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">new</span> ClassPathResource(<span class="hljs-string" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"config/ehcache.xml"</span>));
        cacheManagerFactoryBean.setShared(<span class="hljs-keyword" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">true</span>);
        <span class="hljs-keyword" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">return</span> cacheManagerFactoryBean;
    }
}</code><ul class="pre-numbering" style="margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding: 6px 0px 40px; list-style: none; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; border-right: 1px solid rgb(221, 221, 221); text-align: right;"><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">1</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">2</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">3</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">4</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">5</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">6</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">7</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">8</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">9</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">10</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">11</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">12</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">13</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">14</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">15</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">16</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">17</li></ul></pre><p style="margin-bottom: 1.1em; padding: 0px; color: rgb(63, 63, 63); font-family: &quot;microsoft yahei&quot;; font-size: 15px;">ehcache.xml配置:</p><pre class="prettyprint" style="font-family: &quot;Source Code Pro&quot;, monospace; font-size: 14px; white-space: nowrap; padding: 5px 5px 5px 60px; margin-bottom: 1.1em; line-height: 1.45; background-color: rgba(128, 128, 128, 0.05); border-color: rgba(128, 128, 128, 0.075); border-radius: 0px; position: relative; overflow-y: hidden;"><code class="hljs xml has-numbering" style="font-family: &quot;Source Code Pro&quot;, monospace; white-space: pre; background-image: initial; background-position: initial; background-size: initial; background-repeat: initial; background-attachment: initial; background-origin: initial; background-clip: initial; display: block; word-wrap: normal;"><span class="hljs-pi" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span>
<span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">ehcache</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">xmlns:xsi</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"http://www.w3.org/2001/XMLSchema-instance"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">xsi:noNamespaceSchemaLocation</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"http://ehcache.org/ehcache.xsd"</span>
    <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">updateCheck</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"false"</span>&gt;</span>
    <span class="hljs-comment" style="margin: 0px; padding: 0px; color: rgb(136, 0, 0);">&lt;!-- diskStore：为缓存路径，ehcache分为内存和磁盘两级，此属性定义磁盘的缓存位置。
    参数解释如下： user.home – 用户主目录 
    user.dir – 用户当前工作目录 
    java.io.tmpdir – 默认临时文件路径 --&gt;</span>
    <span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">diskStore</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">path</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"java.io.tmpdir/Tmp_EhCache"</span> /&gt;</span>
    <span class="hljs-comment" style="margin: 0px; padding: 0px; color: rgb(136, 0, 0);">&lt;!-- defaultCache：默认缓存策略，当ehcache找不到定义的缓存时，则使用这个缓存策略。只能定义一个。 --&gt;</span>
    <span class="hljs-comment" style="margin: 0px; padding: 0px; color: rgb(136, 0, 0);">&lt;!-- name:缓存名称。 
        maxElementsInMemory:缓存最大数目
        maxElementsOnDisk：硬盘最大缓存个数。 
        eternal:对象是否永久有效，一但设置了，timeout将不起作用。 
        overflowToDisk:是否保存到磁盘，当系统当机时 
        timeToIdleSeconds:设置对象在失效前的允许闲置时间（单位：秒）。仅当eternal=false对象不是永久有效时使 用，可选属性，默认值是0，也就是可闲置时间无穷大。
        timeToLiveSeconds:设置对象在失效前允许存活时间（单位：秒）。最大时间介于创建时间和失效时间之间。仅 当eternal=false对象不是永久有效时使用，默认是0.，也就是对象存活时间无穷大。 
        diskPersistent：是否缓存虚拟机重启期数据Whether the disk store persists between restarts 
        of the Virtual Machine. The default value is false. 
        diskSpoolBufferSizeMB：这个参数设置DiskStore（磁盘缓存）的缓存区大小。默认是30MB。每个Cache都应该 有自己的一个缓冲区。 
        diskExpiryThreadIntervalSeconds：磁盘失效线程运行时间间隔，默认是120秒。 
        memoryStoreEvictionPolicy：当达到maxElementsInMemory限制时，Ehcache将会根据指定的策略去清理内 存。默认策略是LRU（最近最少使用）。
        你可以设置为FIFO（先进先出）或是LFU（较少使用）。 
        clearOnFlush：内存数量最大时是否清除。
        memoryStoreEvictionPolicy:可选策略有：LRU（最近最少使用，默认策略）、FIFO（先进先出）、LFU（最少 访问次数）。 
         FIFO，first in first out，这个是大家最熟的，先进先出。
         LFU， Less Frequently Used，就是上面例子中使用的策略，直白一点就是讲一直以来最少被使用的。如上面 所讲，缓存的元素有一个hit属性，hit值最小的将会被清出缓存。 
         LRU，Least Recently Used，最近最少使用的，缓存的元素有一个时间戳，当缓存容量满了，而又需要腾出地 方来缓存新的元素的时候，
         那么现有缓存元素中时间戳离当前时间最远的元素将被清出缓存。 --&gt;</span>
    <span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">defaultCache</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">eternal</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"false"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">maxElementsInMemory</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"1000"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">overflowToDisk</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"false"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">diskPersistent</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"false"</span>
        <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">timeToIdleSeconds</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"0"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">timeToLiveSeconds</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"600"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">memoryStoreEvictionPolicy</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"LRU"</span> /&gt;</span>
    <span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">cache</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">name</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"snailAuthCache"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">eternal</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"false"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">maxElementsInMemory</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"10000"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">overflowToDisk</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"false"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">diskPersistent</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"false"</span>
        <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">timeToIdleSeconds</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"0"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">timeToLiveSeconds</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"0"</span> <span class="hljs-attribute" style="margin: 0px; padding: 0px; color: rgb(102, 0, 102);">memoryStoreEvictionPolicy</span>=<span class="hljs-value" style="margin: 0px; padding: 0px; color: rgb(0, 136, 0);">"LFU"</span> /&gt;</span>
<span class="hljs-tag" style="margin: 0px; padding: 0px; color: rgb(0, 102, 102);">&lt;/<span class="hljs-title" style="margin: 0px; padding: 0px; color: rgb(0, 0, 136);">ehcache</span>&gt;</span></code><ul class="pre-numbering" style="margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding: 6px 0px 40px; list-style: none; position: absolute; width: 50px; background-color: rgb(238, 238, 238); top: 0px; left: 0px; border-right: 1px solid rgb(221, 221, 221); text-align: right;"><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">1</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">2</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">3</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">4</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">5</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">6</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">7</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">8</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">9</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">10</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">11</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">12</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">13</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">14</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">15</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">16</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">17</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">18</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">19</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">20</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">21</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">22</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">23</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">24</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">25</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">26</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">27</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">28</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">29</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">30</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">31</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">32</li><li style="margin: 0px; padding: 0px 5px; list-style: none; color: rgb(153, 153, 153);">33</li></ul><div class="save_code tracking-ad" data-mod="popu_249" style="margin: 0px; padding: 0px; position: absolute; height: 60px; right: 30px; top: 5px; color: rgb(255, 255, 255); cursor: pointer; z-index: 2;"><a style="color: rgb(202, 12, 22); margin: 0px; padding: 0px; outline: none;"><img src="http://static.blog.csdn.net/images/save_snippets.png" style="outline: none; max-width: 100%;"></a></div></pre><h3 id="测试" style="font-family: &quot;PingFang SC&quot;, &quot;Microsoft YaHei&quot;, SimHei, Arial, SimSun; color: rgb(63, 63, 63); margin: 0.8em 0px; font-size: 1.7em; padding: 0px;"><br></h3></article>
            <div class="relates">
                <div class="title">
                    <h3>相关推荐</h3>
                </div>
                <ul>
                    <li>
                        <a href="/news/detail_112.html"> SpringBoot 在启动时运行代码</a>
                    </li>
                    <li>
                        <a href="/news/detail_110.html">spring boot 图片上传后的图片读取路径在win与linux环境配置的差别</a>
                    </li>
                    <li>
                        <a href="/news/detail_109.html">spring-boot整合ehcache实现缓存机制</a>
                    </li>
                    <li>
                        <a href="/news/detail_108.html">spring boot ehcache整合</a>
                    </li>
                    <li>
                        <a href="/news/detail_100.html">springboot thymeleaf和shiro 整合——按钮可见性</a>
                    </li>
                </ul>
            </div>
        </div>
    </div>
</section>
<footer class="footer">
    <div class="container">
        <p>本站[<a href="http://xiaochancy.gitee.io/java/">嘻嘻嘻哈哈哈博客</a>]的部分内容来源于网络，若侵犯到您的利益，请联系站长删除！谢谢！Powered By [
        </p>
    </div>
    <div id="gotop"><a class="gotop"></a></div>
</footer>
<script src="../static/js/bootstrap.min.js"></script>
<script src="../static/js/blog.js"></script>
</body>
</html>
